import { loadEnv, defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import {
  createStyleImportPlugin,
  VantResolve,
} from 'vite-plugin-style-import'
import { resolve } from 'path'
// import vueJsxPlugin from 'vite-plugin-vue-jsx'
// import legacy from '@vitejs/plugin-legacy'
// import { viteVConsole } from 'vite-plugin-vconsole'
// import viteCompression from 'vite-plugin-compression'


const CWD = process.cwd()

export default ({ command, mode }) => {
  const { VITE_APP_WEB_URL } = loadEnv(mode, CWD);
  return defineConfig({
    base: VITE_APP_WEB_URL, // 设置打包路径
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src'),
      },
    },
    server: {
      port: 443,
      strictPort: true,
      host: 'testjianye.hd.xxx.com',//'testjianye.hd.xxx.com'
      open: true,
      https: true,
      // proxy: {
      //   '/api': {
      //     target: '127.0.0.1:3000',
      //     changeOrigin: true
      //   }
      // }
    },
    css: { preprocessorOptions: { scss: { charset: false } } },
    plugins: [
      vue(),
      // vueJsxPlugin(),
      // legacy({
      //   targets: ['defaults', 'not IE 11'],
      // }),
      createStyleImportPlugin({
        resolves:[
          VantResolve(),
        ],
        libs: [
          // 如果没有你需要的resolve，可以在lib内直接写，也可以给我们提供PR
          {
            libraryName: 'vant',
            esModule: true,
            resolveStyle: (name) => {
              return `vant/es/${name}/style/index`
            },
          },
        ],
      }),
      // viteCompression({
      //   verbose: true,
      //   disable: false,
      //   threshold: 10240,
      //   algorithm: 'gzip',
      //   ext: '.gz'
      // }),
      // legacy({
      //   targets: ['ie >= 11'],
      //   additionalLegacyPolyfills: ['regenerator-runtime/runtime']
      // }),
      // viteVConsole({
      //   entry: resolve('src/main.ts'),
      //   localEnabled: command === 'serve',
      //   enabled: command === 'build' && mode === 'test',
      //   config: {
      //     maxLogNumber: 1000,
      //     theme: 'light'
      //   }
      // })
    ],
    // build: {
    //   target: 'es2015',
    //   outDir: 'dist',
    //   assetsDir: 'assets',
    //   chunkSizeWarningLimit: 1000,
    //   cssCodeSplit: true,
    //   sourcemap: false,
    //   rollupOptions: {
    //     output: {
    //       manualChunks(id) {
    //         if (id.includes('node_modules')) {
    //           return id.toString().split('node_modules/')[1].split('/')[0].toString()
    //         }
    //       }
    //     }
    //   },
    //   terserOptions: {
    //     compress: {
    //       drop_console: true,
    //       drop_debugger: true
    //     }
    //   }
    // },
  })
}
